$(document).ready(function() {
    // 组织节点展开/折叠
    $(document).on('click', '.org-node > div', function() {
        const $this = $(this);
        const $children = $this.next('div');
        const $icon = $this.find('i:last');
        
        if ($children.length > 0) {
            if ($children.is(':visible')) {
                $children.hide();
                $icon.removeClass('fa-chevron-down').addClass('fa-chevron-right');
            } else {
                $children.show();
                $icon.removeClass('fa-chevron-right').addClass('fa-chevron-down');
            }
        }
    });
    
    // 全部展开/折叠
    let isAllExpanded = false;
    $('#expandAllBtn').click(function() {
        const $icon = $(this).find('i');
        const $nodes = $('.org-node > div + div');
        
        if (isAllExpanded) {
            $nodes.hide();
            $('.org-node > div i:last').removeClass('fa-chevron-down').addClass('fa-chevron-right');
            $(this).html('<i class="fa fa-plus-square-o mr-1"></i> 全部展开');
        } else {
            $nodes.show();
            $('.org-node > div i:last').removeClass('fa-chevron-right').addClass('fa-chevron-down');
            $(this).html('<i class="fa fa-minus-square-o mr-1"></i> 全部折叠');
        }
        
        isAllExpanded = !isAllExpanded;
    });
    
    // 打开组织模态框
    function openOrgModal(isEdit = false, data = null) {
        const modal = $('#orgModal');
        const modalContent = $('#orgModalContent');
        
        if (isEdit && data) {
            $('#orgModalTitle').text('编辑组织');
            $('#orgId').val(data.id);
            $('#orgName').val(data.name);
            $('#orgParent').val(data.parentId);
            $('#orgDesc').val(data.desc);
        } else {
            $('#orgModalTitle').text('新增组织');
            $('#orgForm')[0].reset();
            $('#orgId').val('');
        }
        
        modal.removeClass('hidden');
        setTimeout(() => {
            modalContent.removeClass('scale-95 opacity-0').addClass('scale-100 opacity-100 transition-all duration-300');
        }, 10);
        $('body').css('overflow', 'hidden');
    }
    
    // 关闭组织模态框
    function closeOrgModal() {
        const modalContent = $('#orgModalContent');
        modalContent.removeClass('scale-100 opacity-100').addClass('scale-95 opacity-0 transition-all duration-300');
        setTimeout(() => {
            $('#orgModal').addClass('hidden');
            $('body').css('overflow', 'auto');
        }, 300);
    }
    
    // 打开成员模态框
    function openMemberModal(isEdit = false, data = null) {
        const modal = $('#memberModal');
        const modalContent = $('#memberModalContent');
        
        if (isEdit && data) {
            $('#memberModalTitle').text('编辑成员');
            $('#memberId').val(data.id);
            $('#memberName').val(data.name);
            $('#memberPhone').val(data.phone);
            $('#memberEmail').val(data.email);
            $('#memberDept').val(data.deptId);
            $('#memberPosition').val(data.position);
            $('#memberRole').val(data.role);
        } else {
            $('#memberModalTitle').text('添加成员');
            $('#memberForm')[0].reset();
            $('#memberId').val('');
        }
        
        modal.removeClass('hidden');
        setTimeout(() => {
            modalContent.removeClass('scale-95 opacity-0').addClass('scale-100 opacity-100 transition-all duration-300');
        }, 10);
        $('body').css('overflow', 'hidden');
    }
    
    // 关闭成员模态框
    function closeMemberModal() {
        const modalContent = $('#memberModalContent');
        modalContent.removeClass('scale-100 opacity-100').addClass('scale-95 opacity-0 transition-all duration-300');
        setTimeout(() => {
            $('#memberModal').addClass('hidden');
            $('body').css('overflow', 'auto');
        }, 300);
    }
    
    // 新增组织按钮
    $('#addOrgBtn').click(function() {
        openOrgModal();
    });
    
    // 关闭组织模态框
    $('#closeOrgModal').click(closeOrgModal);
    $('#orgModalOverlay').click(closeOrgModal);
    
    // 组织表单提交
    $('#orgForm').submit(function(e) {
        e.preventDefault();
        
        const orgData = {
            id: $('#orgId').val(),
            name: $('#orgName').val(),
            parentId: $('#orgParent').val(),
            desc: $('#orgDesc').val()
        };
        
        // 模拟API请求
        setTimeout(() => {
            closeOrgModal();
            showNotification(orgData.id ? '组织更新成功' : '组织创建成功', 'success');
            
            // 这里应该刷新组织列表
            console.log('保存组织数据:', orgData);
        }, 800);
    });
    
    // 添加成员按钮
    $('#addMemberBtn').click(function() {
        openMemberModal();
    });
    
    // 编辑成员
    $(document).on('click', '.edit-member', function() {
        const memberId = $(this).data('id');
        // 模拟获取成员数据
        const memberData = {
            id: memberId,
            name: memberId === 1 ? '张三' : '李四',
            phone: memberId === 1 ? '13800005678' : '13900001234',
            email: memberId === 1 ? 'zhangsan@example.com' : 'lisi@example.com',
            deptId: '2',
            position: memberId === 1 ? '部门经理' : '开发工程师',
            role: memberId === 1 ? 'admin' : 'user'
        };
        
        openMemberModal(true, memberData);
    });
    
    // 关闭成员模态框
    $('#closeMemberModal').click(closeMemberModal);
    $('#memberModalOverlay').click(closeMemberModal);
    
    // 成员表单提交
    $('#memberForm').submit(function(e) {
        e.preventDefault();
        
        const memberData = {
            id: $('#memberId').val(),
            name: $('#memberName').val(),
            phone: $('#memberPhone').val(),
            email: $('#memberEmail').val(),
            deptId: $('#memberDept').val(),
            position: $('#memberPosition').val(),
            role: $('#memberRole').val()
        };
        
        // 模拟API请求
        setTimeout(() => {
            closeMemberModal();
            showNotification(memberData.id ? '成员更新成功' : '成员添加成功', 'success');
            
            // 这里应该刷新成员列表
            console.log('保存成员数据:', memberData);
        }, 800);
    });
    
    // 重置密码
    $(document).on('click', '.reset-pwd', function() {
        const memberId = $(this).data('id');
        const memberName = $(this).closest('tr').find('.font-medium').text();
        
        if (confirm(`确定要重置 ${memberName} 的密码吗？`)) {
            // 模拟API请求
            setTimeout(() => {
                showNotification('密码已重置为默认密码：123456', 'success');
                console.log(`重置成员 ${memberId} 的密码`);
            }, 500);
        }
    });
    
    // 删除成员
    $(document).on('click', '.delete-member', function() {
        const $tr = $(this).closest('tr');
        const memberId = $(this).data('id');
        const memberName = $tr.find('.font-medium').text();
        
        if (confirm(`确定要删除成员 ${memberName} 吗？`)) {
            // 模拟API请求
            setTimeout(() => {
                $tr.fadeOut(300, function() {
                    $(this).remove();
                    showNotification('成员已删除', 'success');
                });
                console.log(`删除成员 ${memberId}`);
            }, 500);
        }
    });
    
    // 导入组织
    $('#importOrgBtn').click(function() {
        showNotification('导入功能开发中', 'info');
    });
    
    // 导出组织
    $('#exportOrgBtn').click(function() {
        showNotification('导出功能开发中', 'info');
    });
    
    // 搜索功能
    $('#orgSearch').on('input', function() {
        const searchTerm = $(this).val().toLowerCase();
        // 这里可以实现搜索过滤逻辑
        console.log('搜索:', searchTerm);
    });
    
    // 通知提示函数（复用layout中的实现）
    function showNotification(message, type) {
        const notification = $('#notification');
        const icon = $('#notificationIcon');
        const messageEl = $('#notificationMessage');
        
        notification.removeClass('bg-success bg-danger bg-warning bg-info')
                   .addClass('bg-' + (type || 'info'));
                   
        icon.removeClass('fa-check-circle fa-exclamation-circle fa-exclamation-triangle fa-info-circle text-success text-danger text-warning text-info')
            .addClass('fa-' + (
                type === 'success' ? 'check-circle text-success' : 
                type === 'error' ? 'exclamation-circle text-danger' :
                type === 'warning' ? 'exclamation-triangle text-warning' : 
                'info-circle text-info'
            ));
        
        messageEl.text(message);
        notification.removeClass('hidden').css('translateX', '0');
        
        setTimeout(() => {
            notification.css('translateX', 'calc(100% + 24px)');
        }, 3000);
    }
});